/*
 * join.js
 */

$(function(){
    //wx.config({
    //    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
    //    appId: 'wxcfeeec32ba298ec6', // 必填，公众号的唯一标识
    //    timestamp: '', // 必填，生成签名的时间戳
    //    nonceStr: '', // 必填，生成签名的随机串
    //    signature: '',// 必填，签名，见附录1
    //    jsApiList: [
    //        'chooseImage',
	//		'uploadImage'
    //    ] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
    //});
    function wxconfig(){
        var time = Math.ceil(+ new Date() / 1);
        $.ajax({
            type: 'POST',
            url: config.api.sign, 
            data: {
                "noncestr": "inmycars",
                "timestamp": time,
                "url": window.location.href.split('#')[0]
            }
        }).then(function(ret, data){
            console.log(ret, data);
            wx.config({
                debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                appId: 'wxcfeeec32ba298ec6', // 必填，公众号的唯一标识
                timestamp: time, // 必填，生成签名的时间戳
                nonceStr: 'inmycars', // 必填，生成签名的随机串
                signature: ret.sign,// 必填，签名，见附录1
                jsApiList: [
                    'chooseImage',
	        		'uploadImage'
                ] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
            });
        }, function(err){
            console.log(err);
        })
    }
    wxconfig();

    function dialog(msg){
        $('.dialog .dialog-cnt').text(msg);
        $('.dialog').show();
    }

    function submit(data){
        $.ajax({
            type: 'POST',
            url: config.api.submit,
            data: data
        }).then(function(ret){
            console.log(ret);
            alert('提交成功');
            $('#confirm').text('提交').removeClass('disabled');
            location.href = 'detail.html?id=' + ret.data.id;
        }, function(err){
            console.log(err);
            alert(err.message || '提交失败');
            $('#confirm').text('提交').removeClass('disabled');
        })
        return false;
    }

    function login(name, verify, callback){
        $.ajax({
            url: config.api.login,
            data: {
                name: name,
                verify: verify
            }
        }).then(function(ret){
            console.log(ret);
            callback && callback()
        }, function(err){
            console.log(err);

            if(err.status === 401){
                dialog('手机验证出错')
            }else{
                alert('请求不正确')
            }
            $('#confirm').text('提交').removeClass('disabled');
        })
        return false;
    }

    var counting = false;
    function sendSms(num, callback){
        if(counting){
            return;
        }

        counting = true;

        $.ajax({
            url: config.api.sms + num
        }).then(function(ret){
            console.log(ret);
            callback && callback(60);
            alert('发送成功');
        }, function(err){
            console.log(err);
            callback && callback(60);
        })
    }

    var num = 60;
    function countdown(count){
        num = count || num;
        $('#send').text(num);
        if(num > 0){
            counting = true;
            num--;
            setTimeout(function(){
                countdown();
            }, 1000)
        }else{
            counting = false;
            $('#send').text('发送'); 
        }
    }


    $('.dialog .dialog-ft').on('click', function(e){
        $('.dialog').hide();
    });

    $('#send').on('click', function(e){
        var mobile = $('input[name=mobile]').val();
        console.log(mobile);
        if(!utils.mobile(mobile)){
            dialog('请输入您的手机号码');
            return;
        }
        sendSms(mobile, countdown);
    });

    $('#confirm').on('click', function(e){
        var nick = $('input[name=nick]').val();
        var carnum = $('input[name=carnum]').val();
        var mobile = $('input[name=mobile]').val();
        var verify = $('input[name=verify]').val();
        if(!remoteId){
            dialog('请先上传车顶照片');
            return false;
        }
        if(!nick){
            dialog('请输入您的昵称');
            return false;
        }
        if(!carnum && carnum.length !== 6){
            dialog('请输入您的车架号(后六位)');
            return false;
        }
        if(!utils.mobile(mobile)){
            dialog('请输入您的手机号码');
            return false;
        }
        if(!verify){
            dialog('请输入手机验证码');
            return false;
        }
        if($(this).hasClass('disabled')){
            return;
        }
        $(this).text('提交中').addClass('disabled');
        login(mobile, verify, function(){
            submit({
                activityId: 1,
                remoteId: remoteId,
                nickName: nick,
                carShelf: carnum 
            })
        });
        return false;
    });

    // 图片接口
    // 拍照、本地选图
    var images = {
      localId: [],
      serverId: null 
    };
    $('.img-box').on('click', function(e){
        console.log('wx.chooseImage');
        if(!utils.isWeixin()){
            alert('请在微信中打开');
            return;
        }
        wx.chooseImage({
          count: 1,
          success: function (res) {
            console.log(res);
            images.localId = res.localIds;
            //alert('已选择 ' + res.localIds.length + ' 张图片');
            upload(images.localId[0]);
            $('.img-car').attr('src', images.localId[0])
            //alert(images.localId[0]);
            $('.img-box').addClass('img-done');
          }
        });
    })

    var remoteId = null;
    function upload(img) {
      console.log('wx.uploadImage');
      wx.uploadImage({
        localId: img,
        success: function (res) {
          //alert('已上传');
          images.serverId = res.serverId;
          remoteId = res.serverId;
        },
        fail: function (res) {
          alert(JSON.stringify(res));
        }
      });
    }

})


wx.error(function(res){

    // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
    alert('wx error: ' + JSON.stringify(res));

});
